# -*- coding: utf-8 -*-
# @Time: 2024/11/1 2:25
# @Author: foxhuty
# @File: numpy_notes.py

import numpy as np

a = np.arange(10)
print(a)
print(type(a))
b = [3, 6, 9]
print(np.sqrt(b))
# make an array
a = np.array([1, 2, 3])  # 一维 ndarray对象
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])  # 二维 ndarray对象
c = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]])  # 三维 ndarray对象
print(a)
print(b)
print(c)
# array中dtype的使用,设置创建数组内的元素类型
a = np.array([4, 5, 6], dtype=float)
b = np.array([1, 2, 3], dtype=complex)
print(a)
print(b)
# array中的ndmin,设置数组的最维度
a = np.array([1, 2, 3], ndmin=3)
print(a)

# 使用arange函数创建数组，与range函数类似，括号内的范围是左闭右开
a = np.arange(11)
b = np.arange(1, 11)
c = np.arange(1, 11, 2)
d = np.arange(1, 11, 2, dtype=float)
print(a)
print(b)
print(c)
print(d)

# 随机数创建 使用numpy.random.random(size=None)，该方法返回[0.0, 1.0)范围的随机数
a = np.random.random(size=5)
b = np.random.random(size=(3, 4))  # 生列
print(a)
print(b)
# 随机整数创建 生成一个长度为10的一维随机整数数组，其元素的取值范围在[30, 100)之间
# random_int = np.random.randint(6, size=10)
random_int = np.random.randint(30, 100, size=10)
print(random_int)
random_float = np.random.randint(30, 100, size=(3, 4))
print(random_float)

# 使用np.random.randn(d0,d1.…,dn)
# 功能：返回一个或一组样本，具有标准正态分布(期望为0，方差为1)
a = np.random.randn(4)  # 创建一维正态分布，4个样本
b = np.random.randn(2, 3)  # 创建二维正态分布，2行3列
c = np.random.randn(2, 3, 4)  # 创建三维正态分布，两个3行4列
print(a)
print(b)
print(c)
x = np.arange(1, 13)
print(x)
a = x.reshape(3, 4)
print(a)

# flatten函数将多维数组变成一维的数组
# a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.flatten()
print(b)
